/**
 * 
 */

 
package cl.duocap.refaxion.servicios;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import cl.duocap.refaxion.dao.OrdenTrabajoDAO;
import cl.duocap.refaxion.dto.ItemOrdenTrabajoDTO;
import cl.duocap.refaxion.dto.OrdenTrabajoDTO;
import cl.duocap.refaxion.dto.ParametroBusquedaDTO;
import cl.duocap.refaxion.dto.RepuestoDTO;
import cl.duocap.refaxion.dto.ServicioDTO;
import cl.duocap.refaxion.util.Conexion;

/**
 * @author rentonx
 *
 */
public class OrdenTrabajoService {

	/**
	 * 
	 */
	
	private OrdenTrabajoDAO ordenTrabajoDAO;
	Connection c = null;
	
	public OrdenTrabajoService() {
		try {
			try{
				c = Conexion.connect();

				ordenTrabajoDAO = new OrdenTrabajoDAO(); 
				ordenTrabajoDAO.setConexion(c);

			}catch(SQLException sql){
				sql.printStackTrace();
			}finally{
				
			}	
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
	
	public int obtenerIdMaximoOrdenes(){
		return ordenTrabajoDAO.obtenerIdMaximoOT();
	}
	
	public boolean registroOrdenTrabajoNueva(OrdenTrabajoDTO ordenNueva){
		return ordenTrabajoDAO.registroOrdenTrabajoNueva(ordenNueva);
	}

	public OrdenTrabajoDAO getOrdenTrabajoDAO() {
		return ordenTrabajoDAO;
	}

	public void setOrdenTrabajoDAO(OrdenTrabajoDAO ordenTrabajoDAO) {
		this.ordenTrabajoDAO = ordenTrabajoDAO;
	}
	
	public boolean asignarResponsableOT(int idOrdentrabajo, int idUsuario){
		return ordenTrabajoDAO.asignarResponsableOT(idOrdentrabajo, idUsuario);
	}
	
	public boolean anularOrdenTrabajo(int idOrdenTrabajo){
		return ordenTrabajoDAO.anularOrdenTrabajo(idOrdenTrabajo);
	}
	
	public OrdenTrabajoDTO buscarOrdenTrabajo(int idOrdenTrabajo) {
		return ordenTrabajoDAO.buscarOrdenTrabajo(idOrdenTrabajo);
	}
	
	public boolean actualizarEstadoOrdenTrabajo(int idOrdentrabajo,int estadoNuevo){
		return ordenTrabajoDAO.actualizarEstadoOrdenTrabajo(idOrdentrabajo, estadoNuevo);
	}
	
	public boolean registroOrdenTrabajoNuevaRepuestosSeleccionados(List<RepuestoDTO> listaRepuestosSelEnGrilla, int idOrdenTrabajoNueva){
		return ordenTrabajoDAO.registroOrdenTrabajoNuevaRepuestosSeleccionados(listaRepuestosSelEnGrilla, idOrdenTrabajoNueva);
	}
	
	public boolean registroOrdenTrabajoNuevaServiciosSeleccionados(List<ServicioDTO> listaServiciosSelEnGrilla, int idOrdenTrabajoNueva){
		return ordenTrabajoDAO.registroOrdenTrabajoNuevaServiciosSeleccionados(listaServiciosSelEnGrilla, idOrdenTrabajoNueva);
	}
	
	public List<OrdenTrabajoDTO> bandejaBuscaOT(ParametroBusquedaDTO otPorBuscar) {
	
		return ordenTrabajoDAO.bandejaBuscarOT(otPorBuscar);
	}
	
	public List<ItemOrdenTrabajoDTO> listaDeItemsPorOT(int idOrdenTrabajo) {
		return ordenTrabajoDAO.listaDeItemsPorOT(idOrdenTrabajo);
	}

}
